package com.yss.reportworld.domain.arrwrap;


import com.alibaba.excel.annotation.ExcelIgnore;
import com.alibaba.excel.annotation.ExcelProperty;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.extension.activerecord.Model;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.yss.common.core.annotation.ExcelValid;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import org.springframework.stereotype.Component;

/**
 * 报配置-列数据模型对象 rw_db_tp_rep_basic_col_model
 *
 * @author yss
 * @date 2023-07-14
 */
@Data
@EqualsAndHashCode(callSuper = false)
@TableName("rw_db_tp_rep_basic_col_model")
@Component("TpRepBasicColModel")
public class TpRepBasicColModel extends Model<TpRepBasicColModel> {

    /**
     * 技术主键
     */
    @ExcelProperty( "ID")
    @TableId("ID")
    private String id;

    /**
     * 报表基本信息关联ID
     */
    @ExcelProperty( "BASIC_INFO_ID")
    @TableField("BASIC_INFO_ID")
    @ExcelValid(message = "【TP_REP_BASIC_COL_MODEL】【BASIC_INFO_ID】不能为空")
    private String basicInfoId;

    /**
     * 列数据索引
     */
    @ExcelProperty( "COL_DATA_INDEX")
    @TableField("COL_DATA_INDEX")
    @ExcelValid(message = "【TP_REP_BASIC_COL_MODEL】【COL_DATA_INDEX】不能为空")
    private String colDataIndex;

    /**
     * 数据类型
     */
    @ExcelProperty( "COL_TYPE")
    @TableField("COL_TYPE")
    @ExcelValid(message = "【TP_REP_BASIC_COL_MODEL】【COL_TYPE】不能为空")
    private String colType;

    /**
     * 数据格式
     */
    @ExcelProperty( "COL_FORMAT")
    @TableField("COL_FORMAT")
    private String colFormat;

    /**
     * 修改类型
     */
    @ExcelProperty( "EDIT_TYPE")
    @TableField("EDIT_TYPE")
    private String editType;

    /**
     * 数据字典索引
     */
    @ExcelProperty( "DIC_DATA_INDEX")
    @TableField("DIC_DATA_INDEX")
    private String dicDataIndex;

    /**
     * 单位
     */
    @ExcelProperty( "UNIT")
    @TableField("UNIT")
    private String unit;

    /**
     * 列是否可编辑
     */
    @ExcelProperty( "EDITOR")
    @TableField("EDITOR")
    @ExcelValid(message = "【TP_REP_BASIC_COL_MODEL】【EDITOR】不能为空")
    private String editor;

    /**
     * 排序
     */
    @ExcelProperty( "ORDER_NUM")
    @TableField("ORDER_NUM")
    @ExcelValid(message = "【TP_REP_BASIC_COL_MODEL】【ORDER_NUM】不能为空")
    private Long orderNum;

    /**
     * 列默认维度类型
     */
    @ExcelProperty( "COL_DIM_TYPE")
    @TableField("COL_DIM_TYPE")
    @ExcelValid(message = "【TP_REP_BASIC_COL_MODEL】【COL_DIM_TYPE】不能为空")
    private String colDimType;

    /**
     * 排序列顺序
     */
    @ExcelProperty( "ORDER_COL")
    @TableField("ORDER_COL")
    @ExcelValid(message = "【TP_REP_BASIC_COL_MODEL】【ORDER_COL】不能为空")
    private Long orderCol;

    /**
     * 排序类型
     */
    @ExcelProperty( "ORDER_TYPE")
    @TableField("ORDER_TYPE")
    private String orderType;

    /**
     * 列中文名
     */
    @ExcelProperty( "COL_NAME")
    @TableField("COL_NAME")
    @ExcelValid(message = "【TP_REP_BASIC_COL_MODEL】【COL_NAME】不能为空")
    private String colName;

    /**
     * 长度
     */
    @ExcelProperty( "LENGTH")
    @TableField("LENGTH")
    private Long length;

    /**
     * 小数位数
     */
    @ExcelProperty( "DECIMAL_PLACE")
    @TableField("DECIMAL_PLACE")
    private Long decimalPlace;

    /**
     * 不可编辑单元格范围
     */
    @ExcelProperty( "DISABLED_ROW")
    @TableField("DISABLED_ROW")
    private String disabledRow;

    /**
     * 默认值
     */
    @ExcelProperty( "DEFAULT_VALUE")
    @TableField("DEFAULT_VALUE")
    private String defaultValue;

    /**
     * 是否隐藏列
     */
    @ExcelProperty( "HIDDEN")
    @TableField("HIDDEN")
    @ExcelValid(message = "【TP_REP_BASIC_COL_MODEL】【HIDDEN】不能为空")
    private String hidden;

    /**
     * 多选分隔符
     */
    @ExcelProperty( "MULTIPLE_SEPARATOR")
    @TableField("MULTIPLE_SEPARATOR")
    private String multipleSeparator;

    /**
     * 内容区域是否相同数据合并单元格
     */
    @ExcelProperty( "IS_MERGE")
    @TableField("IS_MERGE")
    @ExcelValid(message = "【TP_REP_BASIC_COL_MODEL】【IS_MERGE】不能为空")
    private String isMerge;

    /**
     * 自定义排序
     */
    @ExcelProperty( "CUSTOM_SORT")
    @TableField("CUSTOM_SORT")
    private String customSort;

    /**  */
    @ExcelProperty( "IS_KEY")
    @TableField("IS_KEY")
    @ExcelValid(message = "【TP_REP_BASIC_COL_MODEL】【IS_KEY】不能为空")
    private String isKey;

    /**
     * 报表数据脱敏规则设置
     */
    @ExcelIgnore
    @TableField("PER_TYPE")
    private String perType;

    /**
     * 是否必填
     */
    @ExcelIgnore
    @TableField("IS_SELFREQUIRED")
    private String isSelfrequired;

    /**
     * 是否业务主键
     */
    @ExcelIgnore
    @TableField("IS_BPK")
    private String isBpk;

    /**
     * 数据编码
     */
    @ExcelIgnore
    @TableField("RW_DB_ID")
    private String rwDbId;

}
